<?php
/* @var $this SiteController */

$this->pageTitle=Yii::app()->name;
?>

<h1>API 说明</h1>

<p>API访问地址 :  http://yaoba.xayoudao.com/server/index.php?r=api/$action</p>
<h2>API返回JSON结构</h2>
<p>
	<pre>
{
	"code": 0 ,
	"message":"成功",
	"data":{}
}
	</pre>
</p>

<h2>API返回JSON中code值的含义</h2>
<ul>
	<li>0 = 成功，非零的返回值都是有错误的，非零值时可以通过messages字段获取错误信息。</li>
	<li>1001 = 缺少参数</li>
	<li>1002 = 参数类型或者格式不正确</li>
	<li>1003 = 在数据库里没有找到id参数所对用的数据对象</li>
	<li>1004 = 保存数据库时失败</li>
	<li>1005 = 数据已存在</li>
	<li>1006 = md5码安全验证错误</li>
	<li>1007 = 您已经摇出所有的奖券了，请等待开奖吧</li>
</ul>


<h2>register 用户注册</h2>
<p>用户注册信息，使用POST方法提交数据，以下是数据字段名和含义</p>
<ul>
	<li>User[mobile] = 手机号码</li>
	<li>User[username] = 用户姓名</li>
	<li>User[password] = 用户名密码，使用UDID代替</li>
</ul>
<p>注册成功返回值如下:</p>
<ul>
	<li>userid = 用户的id</li>
	<li>username = 手机号码</li>
	<li>mobile = 用户姓名</li>
</ul>

<h2>events 获得所有的活动列表</h2>
<p>获得当前所有活跃的和将要开启的活动。</p>
<ul>
	<li>不需要参数</li>
</ul>
<p>返回值：在JSON的data数据中。结构如下</p>
<ul>
	<li>id = 活动id</li>
	<li>title = 标题</li>
	<li>description = 活动介绍</li>
	<li>award = 以数组的形式显示各个奖项的名称。数组的index就是对应奖项等级</li>
	<li>hit = 参与的数量</li>
	<li>starttime = 开始时间</li>
	<li>endtime = 结束时间</li>
</ul>


<h2>event 根据id获得某个活动的信息</h2>
<p>参数：</p>
<ul>
	<li>eventid: 活动id</li>
</ul>
<p>返回值：在JSON的data数据中。结构如下</p>
<ul>
	<li>id = 活动id</li>
	<li>title = 标题</li>
	<li>description = 活动介绍</li>
	<li>award = 以数组的形式显示各个奖项的名称。数组的index就是对应奖项等级</li>
	<li>hit = 参与的数量</li>
	<li>starttime = 开始时间</li>
	<li>endtime = 结束时间</li>
</ul>


<h2>tickets 获得某用户的、某项活动的奖券列表</h2>
<p>用户注册信息</p>
<ul>
	<li>userid = 用户id</li>
	<li>eventid = 活动id</li>
</ul>
<p>返回值：在JSON的data数据中。结构如下</p>
<ul>
	<li>id = 奖券id</li>
	<li>eventid = 活动id</li>
	<li>code = 奖券号码</li>
	<li>winning = 是否中奖</li>
	<li>stat = 是否已经兑换过奖品，0是没有兑换，1是兑换过</li>
	<li>createtime = 摇奖时间</li>
</ul>


<h2>shake 上传一次摇奖信息</h2>
<p>上传一次摇奖信息，并返回摇奖号码和活动的信息</p>
<ul>
	<li>Ticket[userid] = 用户id</li>
	<li>Ticket[eventid] = 活动id</li>
	<li>Ticket[code] = 随机生成的3-5位的中奖奖号，同一个活动下不能重复。</li>
	<li>code = 验证码，通过md5生成，防止作弊。生成方式是：md5(userid+eventid+code+code.lenght)</li>
</ul>

<p>
	<pre>
md5示例：
userid = 23
event = 2
code = 732
md5(userid+eventid+code+code.lenght)
md5('2327323')
<?php echo md5('2327323'); ?>
	</pre>
</p>
<p>返回值：1006 表示验证码错误</p>
<p>返回值：1007 您已经摇出所有的奖券了，请等待开奖吧</p>
<p>
	 
	<li>userid = 用户id</li>
	<li>eventid = 活动id</li>
	<li>code = 随机生成的3-5位的中奖奖号</li>
	 
</p>

<h2>vote 提交问卷调查</h2>
<p>问卷调查使用硬编码的方式，在客户和服务器端同时维护一个问卷调查的数组。并且内容是一致的。做到id都是相同的。</p>
<ul>
	<li>Vote[userid] = 用户id</li>
	<li>Vote[eventid] = 活动id</li>
	<li>Vote[question] = 问题的id</li>
	<li>Vote[ask] = 回答id。</li>
</ul>
<p>返回值：</p>


<h2>iospush 提交ios推送需要的token</h2>
<p>可以只推送token，也可以token和userid同时推送。</p>
<ul>
	<li>Iospush[token] = 消息推送token，必须</li>
	<li>Iospush[userid] = 用户id，不是必须</li>
	
</ul>
<p>返回值：</p>


<h2>question 获取某个活动的问卷调查内容</h2>
<p>参数：</p>
<ul>
	<li>userid: 用户id</li>
	<li>eventid: 活动id</li>
</ul>
<p>返回值：JSON数组形式的问题和答案内容</p>
<ul>
	<li>eventid = 活动id</li>
	<li>questionid = 问题id</li>
	<li>question = 问题内容</li>
	<li>answers = 问题的答案JSON数组，下面是questions数组对象内字段</li>
	<li>askid = 答案id</li>
	<li>ask = 答案内容</li>
</ul>

<h2>timestamp 获取服务器时间戳</h2>
<p></p>

<p>返回值：</p>
<ul>
	<li>data = 内容里直接是时间戳</li>
	
</ul>
 


<h2>version 获得最新版本和下载地址</h2>
<p>android和ios同时可以使用这个接口，但返回的值根据操作系统而不同。</p>

<p>Android 返回值：</p>
<ul>
	<li>version = 最新的版本</li>
	<li>changelog = 最新一次更新的日志</li>
	<li>downloadurl = 下载地址</li>
</ul>
<p>IOS 返回值：</p>
<ul>
	<li>appid = 应用市场的id</li>
</ul>
